home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / obrn-a_1.5_lib.lha / oberon-a / source1.lha / source / amiga / KeyMap.mod < prev    next >
Encoding:
Text File  |  1995-01-26  |  2.3 KB  |  87 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: KeyMap.mod $
  4.   Description: Keymap definitions
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.7 $
  8.       $Author: fjc $
  9.         $Date: 1995/01/26 02:39:55 $
  10.  
  11.   $VER: keymap.h 36.3 (13.4.90)
  12.   Includes Release 40.15
  13.  
  14.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  15.       All Rights Reserved
  16.  
  17.   Oberon-A interface Copyright © 1994-1995, Frank Copeland.
  18.   This file is part of the Oberon-A Interface.
  19.   See Oberon-A.doc for conditions of use and distribution.
  20.  
  21. ***************************************************************************)
  22.  
  23. <* STANDARD- *> <* INITIALISE- *> <* MAIN- *>
  24. <*$ CaseChk-  IndexChk- LongVars+ NilChk-  *>
  25. <*$ RangeChk- StackChk- TypeChk-  OvflChk- *>
  26.  
  27. MODULE [2] KeyMap;
  28.  
  29. IMPORT e := Exec, s := Sets;
  30.  
  31.  
  32. (*
  33. **      key map definitions for keymap.resource, keymap.library, and
  34. **      console.device
  35. *)
  36.  
  37. TYPE
  38.  
  39.   KeyMapPtr* = POINTER TO KeyMap;
  40.   KeyMap* = RECORD
  41.     loKeyMapTypes * : POINTER TO ARRAY 64 OF s.SET8;
  42.     loKeyMap *      : POINTER TO ARRAY 64 OF e.ULONG;
  43.     loCapsable *    : POINTER TO ARRAY 8 OF s.SET8;
  44.     loRepeatable *  : POINTER TO ARRAY 8 OF s.SET8;
  45.     hiKeyMapTypes * : POINTER TO ARRAY 64 OF s.SET8;
  46.     hiKeyMap *      : POINTER TO ARRAY 64 OF e.ULONG;
  47.     hiCapsable *    : POINTER TO ARRAY 8 OF s.SET8;
  48.     hiRepeatable *  : POINTER TO ARRAY 8 OF s.SET8;
  49.   END; (* KeyMap *)
  50.  
  51.   KeyMapNodePtr* = POINTER TO KeyMapNode;
  52.   KeyMapNode* = RECORD (e.NodeBase)
  53.     node *   : e.Node; (* including name of keymap *)
  54.     keyMap * : KeyMap;
  55.   END; (* KeyMapNode *)
  56.  
  57.   KeyMapResourcePtr* = POINTER TO KeyMapResource;
  58.   KeyMapResource* = RECORD (e.NodeBase)
  59.     node * : e.Node;
  60.     list * : e.List;        (* a list of KeyMapNodes *)
  61.   END; (* KeyMapResource *)
  62.  
  63. CONST
  64.  
  65. (* Key Map Types *)
  66.   shift *   = 0;
  67.   alt *     = 1;
  68.   control * = 2;
  69.   downUp *  = 3;
  70.   dead *    = 5;           (* may be dead or modified by dead key: *)
  71.                            (*   use dead prefix bytes              *)
  72.   string *  = 6;
  73.   nop *     = 7;
  74.  
  75.   noQual *  = {};
  76.   vanilla * = -{shift, alt, control}; (* note that SHIFT+ALT+CTRL is VANILLA *)
  77.  
  78. (* Dead Prefix Bytes *)
  79.   dpbMod * = 0;
  80.   dpbDead* = 3;
  81.  
  82.   dp2dIndexMask * = 0FH;     (* mask for index for 1st of two dead keys *)
  83.   dp2dFacShift  * = 4;       (* shift for factor for 1st of two dead keys *)
  84.  
  85.  
  86. END KeyMap.
  87.